package com.catl.plc.master.wrapper.rxtx;//package com.wdp.moudbus.master.wrapper.rxtx;
//
//
//import com.serotonin.modbus4j.serial.SerialPortWrapper;
//import gnu.io.*;
//import lombok.SneakyThrows;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//
//import java.io.IOException;
//import java.io.InputStream;
//import java.io.OutputStream;
//
//public class SerialPortWrapperImpl implements SerialPortWrapper {
//    private static final Logger LOG = LoggerFactory.getLogger(SerialPortWrapperImpl.class);
//    private SerialPort port;
//    // 目标端口 例如 COM1--> COM2 ,commPortId = COM2,自己就是 COM1
//    private String commPortId = "COM2";
//    //波特率
//    private int baudRate;
//    //数据位
//    private int dataBits = SerialPort.DATABITS_8;
//    //停止位
//    private int stopBits = SerialPort.STOPBITS_1;
//    //校验位
//    private int parity = SerialPort.PARITY_NONE;
//    //
//    private int flowControlIn = SerialPort.FLOWCONTROL_NONE;
//    //
//    private int flowControlOut = SerialPort.FLOWCONTROL_NONE;
//
//    public SerialPortWrapperImpl(String commPortId, int baudRate, int dataBits, int stopBits,
//                                 int parity, int flowControlIn, int flowControlOut)
//            throws NoSuchPortException, PortInUseException {
//        this.commPortId = commPortId;
//        this.baudRate = baudRate;
//        this.dataBits = dataBits;
//        this.stopBits = stopBits;
//        this.parity = parity;
//        this.flowControlIn = flowControlIn;
//        this.flowControlOut = flowControlOut;
////        port = new RXTXPort(commPortId);
//        // 通过端口名识别端口
//        CommPortIdentifier identifier = CommPortIdentifier.getPortIdentifier(commPortId);
//        // 打开端口，并给端口名字和一个timeout（打开操作的超时时间）
//        CommPort commPort = identifier.open(commPortId, 2000);
//        port = (SerialPort) commPort;
//    }
//    public SerialPortWrapperImpl(String commPortId) throws PortInUseException, NoSuchPortException {
//        this.baudRate = 9600;
//        // 通过端口名识别端口
//        CommPortIdentifier identifier = CommPortIdentifier.getPortIdentifier(commPortId);
//        // 打开端口，并给端口名字和一个timeout（打开操作的超时时间）
//        CommPort commPort = identifier.open(commPortId, 2000);
//        port = (SerialPort) commPort;
//
//    }
//
//    @Override
//    public void close() throws Exception {
//        port.close();
//    }
//
//    @Override
//    public void open() throws Exception {
//        port.setSerialPortParams(baudRate,dataBits,stopBits,parity);
//        port.setFlowControlMode(this.getFlowControlIn() | this.getFlowControlOut());
//    }
//
//    @Override
//    public InputStream getInputStream() {
//        InputStream stream=null;
//        try {
//            stream = port.getInputStream();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//        return stream;
//    }
//
//    @Override
//    public OutputStream getOutputStream() {
//        OutputStream stream=null;
//        try {
//            stream = port.getOutputStream();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//        return stream;
//    }
//
//    @Override
//    public int getBaudRate() {
//        return this.baudRate;
//    }
//
//    @Override
//    public int getFlowControlIn() {
//        return this.flowControlIn;
//    }
//
//    @Override
//    public int getFlowControlOut() {
//        return this.flowControlOut;
//    }
//
//    @Override
//    public int getDataBits() {
//        return this.dataBits;
//    }
//
//    @Override
//    public int getStopBits() {
//        return this.stopBits;
//    }
//
//    @Override
//    public int getParity() {
//        return this.parity;
//    }
//}
